home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Aminet 30
/
Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso
/
Aminet
/
text
/
misc
/
MSWordView_src.lha
/
mswordview
/
laolareplace.c
< prev
next >
Wrap
C/C++ Source or Header
|
1998-12-02
|
2KB
|
66 lines
/*
The interface to myOLEdecode now has
int OLEdecode(char *filename, FILE **mainfd, FILE **tablefd0, FILE
**tablefd1,FILE **data)
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "config.h"
#include "mswordview.h"
#include "oledecod.h"
extern FILE*erroroutput;
pps_entry *stream_tree;
void myfreeOLEtree(void)
{
/* need to free all the allocated memory */
freeOLEtree (stream_tree);
}
int myOLEdecode(char *filename, FILE **mainfd, FILE **tablefd0, FILE **tablefd1,FILE **data)
{
int result;
U32 root_stream;
U32 stream;
result = OLEdecode (filename, &stream_tree, &root_stream, 1);
if (result == 0)
{
for (stream = stream_tree[root_stream].dir; stream != 0xffffffff; stream = stream_tree[stream].next)
{
if (stream_tree[stream].type != 1 && stream_tree[stream].level == 1)
{
if (!(strcmp(stream_tree[stream].name,"WordDocument")))
{
*mainfd = fopen(stream_tree[stream].filename,"rb");
}
else if (!(strcmp(stream_tree[stream].name,"1Table")))
{
*tablefd1 = fopen(stream_tree[stream].filename,"rb");
}
else if (!(strcmp(stream_tree[stream].name,"0Table")))
{
*tablefd0 = fopen(stream_tree[stream].filename,"rb");
}
else if (!(strcmp(stream_tree[stream].name,"Data")))
{
*data = fopen(stream_tree[stream].filename,"rb");
}
}
}
}
switch(result)
{
case 5:
fprintf(erroroutput,"OLE file appears to be corrupt, unable to extract streams\n");
break;
}
return(result);
}